Improving Sequential Performance of Erlang Based on a Meta-tracing Just-In-Time Compiler
نویسندگان
چکیده
In widely-used actor-based programming languages, such as Erlang, sequential execution performance is as important as scalability of concurrency. In order to improve sequential performance of Erlang, we develop Pyrlang, an Erlang virtual machine with a just-in-time (JIT) compiler by applying an existing meta-tracing JIT compiler. In this paper, we overview our implementation and present the optimization techniques for Erlang programs, most of which heavily rely on function recursion. Our preliminary evaluation showed approximately 38% speedup over the standard Erlang interpreter.
منابع مشابه
Meta-tracing makes a fast Racket
Tracing just-in-time (JIT) compilers record and optimize the instruction sequences they observe at runtime. With some modifications, a tracing JIT can perform well even when the executed program is itself an interpreter, an approach called meta-tracing. The advantage of meta-tracing is that it separates the concern of JIT compilation from language implementation, enabling the same JIT compiler ...
متن کاملThe impact of meta-tracing on VM design and implementation
Most modern languages are implemented using Virtual Machines (VMs). While the best VMs use Just-In-Time (JIT) compilers to achieve good performance, JITs are costly to implement, and few VMs therefore come with one. The RPython language allows tracing JIT VMs to be automatically created from an interpreter, changing the economics of VM implementation. In this paper, we explain, through two conc...
متن کاملCompilation of Floating Point Arithmetic in the High Performance ERLANG Compiler
In the context of the dynamically typed concurrent functional programming language ERLANG, we describe a simple static analysis for identifying variables containing floating point numbers, how this information is used by the BEAM compiler, and a scheme for efficient (just-in-time) compilation of floating point bytecode instructions to native code. The attractiveness of the scheme lies in its im...
متن کاملAn Experimental Evaluation of JAVA JIT Technology
Interpreted languages are widely used due to ease to use, portability, and safety. On the other hand, interpretation imposes a significance overhead. Just-inTime (JIT) compilation is a popular approach to improving the runtime performance of languages such as Java. We compare the performance of a JIT compiler with a traditional compiler and with an emulator. We show that the compilation overhea...
متن کاملReport of the ASTEC project : HiPE - High Performance Erlang
The scientific goals of HiPE for the period 2001-2003 have been described in detail in the HiPE proposal which is electronically accessible here. To make this document relatively self-contained the goals are also very briefly outlined below: 1. Complete integration of the HiPE compiler within Erlang/OTP 2. Develop a HiPE compiler for Intel x86 machines 3. Port Open Source Erlang to 64-bit hardw...
متن کامل